using admin.core.Entities.App;

namespace admin.application.Services;

public interface IAppRoleServices
{
    Task<AppRole> CreateRoleAsync(AppRole role);
    Task<AppRole?> UpdateRoleAsync(Guid id, AppRole role);
    Task DeleteRoleAsync(Guid id);
    Task EnableRoleAsync(Guid id);
    Task DisableRoleAsync(Guid id);
    Task AssignPermissionAsync(Guid roleId, Guid permissionId);
    Task RemovePermissionAsync(Guid roleId, Guid permissionId);
    Task<List<AppRole>> GetAllRolesAsync();
    Task<List<AppPermission>> GetRolePermissionsAsync(Guid roleId);
} 